var sprite = new Object();

// Create custom jCanvas functions for use with sprites
sprite.initJCanvas = function() {
    // Draw a sprite on the correct animation frame, or a
    // static frame if no animation is specified.
    $.jCanvas.extend({
        name: "drawSprite",
        props: {
            sprite: false,
            anim: false,
            frame: 0
        },
        fn: function(ctx, p) {
            if (p.sprite !== false) {
                if (p.anim !== false) {
                    ctx.drawImage(
                        p.sprite.img, 
                        p.sprite.width * p.frame + p.sprite.offset_x, // sx
                        p.sprite.height * p.sprite.animations[p.anim].row + p.sprite.offset_y, // sy
                        p.sprite.width, // sw
                        p.sprite.height, //sh
                        p.x, // x
                        p.y, // y
                        p.sprite.width, // w
                        p.sprite.height // h
                    );
                } else {
                    ctx.drawImage(
                        p.sprite.img, 
                        p.sprite.offset_x, // sx
                        p.sprite.offset_y, // sy
                        p.sprite.width, // sw
                        p.sprite.height, //sh
                        p.x, // x
                        p.y, // y
                        p.sprite.width, // w
                        p.sprite.height // h
                    );
                }
            } else {
                console.log("ERROR: Invalid sprite " + p.sprite);
            }
        }
    });
}

sprite.draw = function($canvas, _sprite, animation, frame) {
    
};